home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / as.z / as
Text File  |  1998-10-30  |  17KB  |  396 lines

  1.  
  2.  
  3.  
  4. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      as - SGI MIPSpro Assembler
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      aaaassss [ -o32 | -n32 | -64 ] [ option ] ... file ...
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _a_s is the SGI assembler.  It assembles a symbolic assembly language
  16.      source program, producing an object file in _e_l_f format.  The SGI
  17.      assembler support three different Application Binary Interfaces
  18.      controlled by the options ----oooo33332222 , ----nnnn33332222 , and ----66664444 (see _a_b_i(_5) ) _A_s never
  19.      runs the loader.
  20.  
  21.      _a_s always defines the preprocessor symbols:  _LANGUAGE_ASSEMBLY, __sgi,
  22.      __mips, __host_mips, __unix, _MIPSEB, _SYSTYPE_SVR4, _SVR4_SOURCE,
  23.      _SGI_SOURCE, _MIPS_ISA, _MIPS_SIM, _MIPS_FPSET, _MIPS_SZINT,
  24.      _MIPS_SZLONG, and _MIPS_SZPTR.  These are shown by the ----sssshhhhoooowwww option to
  25.      _a_s(1).  The C preprocessor adds other standard definitions of its own
  26.      (see _c_p_p(1)).
  27.  
  28.      The following options are interpreted by _a_s and have the same meaning in
  29.      _c_c(1).  See _l_d(1) for load-time options.
  30.  
  31.      CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss
  32.  
  33.      This first set of options control the choice of ABI and ISA (Instruction
  34.      Set Architecture).
  35.  
  36.      ----oooo33332222 oooorrrr ----33332222
  37.           Generate a 32-bit object.  This is the default on all systems that
  38.           are not based on the R8000.  This implies ----mmmmiiiippppssss2222 if ----mmmmiiiippppssss1111 has not
  39.           been specified.
  40.  
  41.      ----66664444  Generate a 64-bit object. This is the default on R8000 systems.
  42.           This implies ----mmmmiiiippppssss4444 if ----mmmmiiiippppssss3333 has not been specified.
  43.  
  44.      ----nnnn33332222 Generate an n32 object. This implies ----mmmmiiiippppssss3333 if ----mmmmiiiippppssss4444 has not been
  45.           specified.
  46.  
  47.      ----mmmmiiiippppssss1111
  48.           Generate code using the instruction set of the R3000 RISC
  49.           architecture.  This implies ----oooo33332222....
  50.  
  51.      ----mmmmiiiippppssss2222
  52.           Generate code using the MIPS II instruction set (MIPS I + some R4000
  53.           specific extensions).  This implies ----oooo33332222....
  54.  
  55.      ----mmmmiiiippppssss3333
  56.           Generate code using the full R4000 instruction set.  This implies
  57.           ----nnnn33332222 (except on R8000-based systems it implies ----66664444)
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  71.  
  72.  
  73.  
  74.      ----mmmmiiiippppssss4444
  75.           Generate code using the full MIPS IV instruction set (64-bit R8000
  76.           extensions).  This implies ----nnnn33332222 (except on R8000-based systems it
  77.           implies ----66664444)
  78.  
  79.      Options valid in all three ABI's.
  80.  
  81.      ----ccccpppppppp Run the C macro preprocessor on assembly source files before
  82.           compiling.  This is the default.
  83.  
  84.      ----DDDD_n_a_m_e=_d_e_f
  85.      ----DDDD_n_a_m_e
  86.           Define the _n_a_m_e to the C macro preprocessor, as if by `#define'.  If
  87.           no definition is given, the name is defined as "1".
  88.  
  89.      ----EEEE   Run only the C macro preprocessor on the specified assembly source
  90.           files, and send the result to the standard output.
  91.  
  92.      ----GGGG _n_u_m
  93.           Specify the maximum size, in bytes, of a data item that is to be
  94.           accessed from the global pointer.  _N_u_m is assumed to be a decimal
  95.           number.  If _n_u_m is zero, no data is accessed from the global
  96.           pointer.  The default value for _n_u_m is 8 bytes when using ----66664444 or
  97.           ----nnnn33332222.... The default value for _n_u_m is 0 when using ----oooo33332222....
  98.  
  99.      ----gggg0000  Have the assembler produce no symbol table information for symbolic
  100.           debugging.
  101.  
  102.      ----gggg   Have the assembler produce additional symbol table information for
  103.           full symbolic debugging.  This is the default.
  104.  
  105.      ----IIII_d_i_r
  106.           `#include' files whose names do not begin with `/' are always sought
  107.           first in the directory of the _f_i_l_e argument, then in directories
  108.           specified in ----IIII options, and finally in the standard directory
  109.           (////uuuussssrrrr////iiiinnnncccclllluuuuddddeeee).
  110.  
  111.      ----IIII   This option will cause `#include' files never to be searched for in
  112.           the standard directory (////uuuussssrrrr////iiiinnnncccclllluuuuddddeeee).
  113.  
  114.      ----kkkkeeeeeeeepppp
  115.           Build and use intermediate file names with the last component of the
  116.           source file's  name replacing its suffix with the conventional
  117.           suffix for the type of file (for example `.i' file for preprocessed
  118.           source).  These intermediate files are not removed.  This option is
  119.           primarily for compiler debugging.
  120.  
  121.      ----nnnnooooccccpppppppp
  122.           Do not run the C macro preprocessor on assembly source before
  123.           compiling.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  137.  
  138.  
  139.  
  140.      ----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd
  141.           Don't generate position-independent code (PIC).
  142.  
  143.      ----OOOO0000  Turn off all optimizations.  This is the default for ----66664444 or ----nnnn33332222....
  144.  
  145.      ----OOOO1111  Turn on all optimizations that can be done easily.  This is the
  146.           default for ----oooo33332222....
  147.  
  148.      ----OOOO or ----OOOO2222
  149.           Turn on all optimizations.  For ----66664444 or ----nnnn33332222 this just means
  150.           scheduling the code; for ----oooo33332222 this also means more aggressive
  151.           optimizations.
  152.  
  153.      ----oooo _o_u_t_p_u_t
  154.           Name the final output file _o_u_t_p_u_t.  If this option is not used, the
  155.           output file is the input file name with a `.o' suffix rather than
  156.           the `.s' suffix.
  157.  
  158.      ----PPPP   Run only the C macro preprocessor and put the result for each `.s'
  159.           file in a corresponding `.i' file.  The `.i' file has no `#' lines
  160.           in it.
  161.  
  162.      ----sssshhhhoooowwww
  163.           Print the passes as they execute with their arguments and their
  164.           input and output files.
  165.  
  166.      ----UUUU_n_a_m_e
  167.           Remove any initial definition of _n_a_m_e.
  168.  
  169.      CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss ((((----nnnn33332222 oooorrrr ----66664444 oooonnnnllllyyyy))))
  170.  
  171.      ----hhhheeeellllpppp
  172.           This will not run the assembler, but will list all the available
  173.           options.
  174.  
  175.      ----wwwwooooffffffff aaaallllllll
  176.           Suppress all warning messages.
  177.  
  178.      The options described below primarily aid compiler development and are
  179.      not generally used:
  180.  
  181.      ----WWWWaaaa,,,,_a_r_g_1[,_a_r_g_2...]
  182.           Pass the argument[s] _a_r_g_i to the assembler pass.  The commas between
  183.           the arguments are translated into spaces.
  184.  
  185.      ----YYYYaaaa,,,,_d_i_r_e_c_t_o_r_y
  186.           Use the aaaassssmmmm pass from the given _d_i_r_e_c_t_o_r_y.
  187.  
  188.      CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss ((((----oooo33332222 oooonnnnllllyyyy))))
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  203.  
  204.  
  205.  
  206.      The options described below primarily aid compiler development and are
  207.      not generally used:
  208.  
  209.      ----ffffuuuullllllllaaaassssoooopppptttt
  210.           Enable all the global optimizations done by the assembler. The
  211.           assembler can perform several global optimizations that are enabled
  212.           automatically for high level languages like C, Pascal and Fortran.
  213.           These optimizations are turned off by default while compiling an
  214.           assembly language source file. This is done because the
  215.           optimizations rely on the procedure calling convention to be
  216.           strictly followed. Several assembly language programs violate these
  217.           restrictions. The ----ffffuuuullllllllaaaassssoooopppptttt option allows enabling of these
  218.           optimizations for .s files.
  219.  
  220.      ----HHHH_c  Halt compiling after the pass specified by the character _c,
  221.           producing an intermediate file for the next pass.  The _c can be [[[[ aaaa
  222.           ]]]].... It selects the assembler pass in the same way as the ----tttt option.
  223.           If this option is used, the symbol table file produced and used by
  224.           the passes,is the last component of the source file with the suffix
  225.           changed to `.T' and is not removed.  Please note that this switch is
  226.           non-standard and may not be supported across product lines.
  227.  
  228.      ----KKKKPPPPIIIICCCC
  229.           Activates the assembler directives for generating position-
  230.           independent code (PIC).  This is the default.
  231.  
  232.      The options ----tttt[hhhhppppaaaabbbb], ----hhhh_p_a_t_h, and ----BBBB_s_t_r_i_n_g select a name to use for a
  233.      particular pass.  These arguments are processed from left to right so
  234.      their order is significant.  When the ----BBBB option is encountered, the
  235.      selection of names takes place using the last ----hhhh and ----tttt options.  These
  236.      three options must be used together.
  237.  
  238.      ----tttt[hhhhppppaaaabbbb]
  239.           Select the names.  The names selected are those designated by the
  240.           characters following the ----tttt option according to the following table:
  241.           Name     Character
  242.           include h
  243.           cpp     p
  244.           as0     a
  245.           as1     b
  246.           If the character `h' is in the ----tttt argument then a directory is added
  247.           to the list of directories to be used in searching for `#include'
  248.           files.  This directory name has the form /_u_s_r/include_s_t_r_i_n_g.  This
  249.           directory is to contain the include files for the _s_t_r_i_n_g release of
  250.           the compiler.  The standard directory is still searched.
  251.  
  252.      ----hhhh_p_a_t_h
  253.           Use _p_a_t_h rather than the directory where the name is normally found.
  254.           Please note that this switch is non-standard and may not be
  255.           supported across product lines.
  256.  
  257.  
  258.  
  259.                                                                         PPPPaaaaggggeeee 4444
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  267.  
  268.  
  269.  
  270.      ----BBBB_s_t_r_i_n_g
  271.           Append _s_t_r_i_n_g to all names specified by the ----tttt option.  If no ----tttt
  272.           option has been processed before the ----BBBB,,,, the ----tttt option is assumed to
  273.           be ``hpab''.  This list designates all names.
  274.  
  275.  
  276.      ----WWWW_c,_a_r_g_1[,_a_r_g_2...]
  277.           Pass the argument[s] _a_r_g_i to the assembler pass _c. The _c is one of [[[[
  278.           ppppaaaabbbb ]]]].... The c selects the assembler pass in the same way as the ----tttt
  279.           option.  Of particular interest are several options to affect the
  280.           various optimizations done by the assembler. Most of these assembler
  281.           optimizations are fairly new and so are perhaps more likely to have
  282.           problems than other parts of the compiler:
  283.  
  284.           ----WWWWbbbb,,,,----nnnnooooxxxxbbbbbbbb
  285.                Turn off cross basic block instruction scheduling.
  286.  
  287.           ----WWWWbbbb,,,,----nnnnooooppppeeeeeeeepppp
  288.                Turn off peephole optimizations.
  289.  
  290.           ----WWWWbbbb,,,,----nnnnoooosssswwwwppppiiiippppeeee
  291.                Turn off software pipelining.
  292.  
  293.           ----WWWWbbbb,,,,----nnnnoooossssyyyymmmmrrrreeeeggggssss
  294.                Turn off symbolic register renaming.
  295.  
  296.      Note: these global optimizations are enabled only when optimization level
  297.      ----OOOO2222 or higher is selected for high level languages or the ----ffffuuuullllllllaaaassssoooopppptttt
  298.      option is used for assembly language files.
  299.  
  300.      If the environment variable TMPDIR is set, the value is used as the
  301.      directory to place any temporary files rather than the default ////ttttmmmmpppp.
  302.  
  303. FFFFIIIILLLLEEEESSSS
  304.      file.o                 object file output
  305.      /usr/include           standard `#include' file directory
  306.  
  307.                             ((((----oooo33332222 OOOONNNNLLLLYYYY))))
  308.      /tmp/ctm*              temporary files
  309.      /usr/lib/cpp           C macro preprocessor
  310.      /usr/lib/as0           symbolic assembly language translator
  311.      /usr/lib/as1           binary assembler and reorganizer
  312.  
  313.                             ((((----nnnn33332222 aaaannnndddd ----66664444 OOOONNNNLLLLYYYY))))
  314.      /tmp/cmplr*            temporary files
  315.      /usr/lib32/cmplrs/cpp  C macro preprocessor
  316.      /usr/lib32/cmplrs/asm  symbolic assembler
  317.  
  318. BBBBUUUUGGGGSSSS
  319.      The assembler attempts to continue after finding semantic errors.  These
  320.      errors may result in internal errors.
  321.  
  322.  
  323.  
  324.  
  325.                                                                         PPPPaaaaggggeeee 5555
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332. AAAASSSS((((1111))))                                                                    AAAASSSS((((1111))))
  333.  
  334.  
  335.  
  336. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  337.      MIPSpro Assembly Language Programmer's Guide,
  338.      MIPSpro N32 ABI Guide,
  339.      MIPSpro 64-bit Porting and Transition Guide,
  340.      cc(1), what(1), getabi(3c)
  341.  
  342. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  343.      The diagnostics produced by the assembler are intended to be self-
  344.      explanatory.
  345.  
  346. NNNNOOOOTTTTEEEESSSS::::
  347.      The environment variable SSSSGGGGIIII____AAAABBBBIIII can be used to change the default ABI
  348.      behavior to be ----oooo33332222 , ----nnnn33332222 , or ----66664444 ; see getabi(3c).  Also, the
  349.      /etc/compiler.defaults file can be used to change default behavior.  See
  350.      the _c_c(1) man page for more information.
  351.  
  352.      The environment variables COMP_TARGET_ROOT, TOOLROOT, RLS_ID_OBJECT are
  353.      used by _a_s while compiling the compiler itself.  Their meaning is left
  354.      undefined intentionally.  They should nnnnooootttt be set in your environment.
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                                                         PPPPaaaaggggeeee 6666
  392.  
  393.  
  394.  
  395.